﻿using System.Diagnostics.CodeAnalysis;

namespace DataServer.CommonLib.Models.DataConfig
{
    public class ConfigFieldInfoResponseDto
    {
        public Guid Key { get; set; }
        
        [NotNull]
        public string? FieldCode { get; set; }

        [NotNull]
        public string? FieldName { get; set; }

        public string? DisplayName { get; set; }

        [NotNull]
        public string? ValueColumnMap { get; set; }

        [NotNull]
        public string? DataType { get; set; }

        public int Sort { get; set; }

        public string? Description { get; set; }

        public bool IsRequired { get; set; }

        public bool IsKey { get; set; }

        public bool IsVisible { get; set; }

        public bool IsSearch { get; set; }

        public string? DefaultValue { get; set; }

        public bool SearchRequired { get; set; }

        [NotNull]
        public string? ControlType { get; set; }

        public string? ControlContent { get; set; }

        public bool IgnoreCtlVerify { get; set; }

        public int? MaxLengthTextBox { get; set; }

        public string? RegexExpTextBox { get; set; }

        public string? DataSourceTypeSelect { get; set; }

        public string? DataSourceValueSelect { get; set; }

        public string? DataSourceTextSelect { get; set; }

        public IList<ConfigStaticValueModelDto> DataSourceStaticValueSelect { get; set; } = new List<ConfigStaticValueModelDto>();
        
        public string? RegexExpDescTextBox { get; set; }
    }
}
